import { CacheKeyEnum } from "@/enums/cacheEnum";
import { defineStore } from "pinia";

// 你可以任意命名 `defineStore()` 的返回值，但最好使用 store 的名字，同时以 `use` 开头且以 `Store` 结尾。
// (比如 `useUserStore`，`useCartStore`，`useProductStore`)
// 第一个参数是你的应用中 Store 的唯一 ID。

//Setup Store
export const useUserStore = defineStore("user", () => {
  const token = ref("123");
  const userInfo = ref({});

  const setToken = (tokenVal: string) => {
    set(CacheKeyEnum.TOKEN_KEY, tokenVal);
    token.value = tokenVal;
  };

  const setUserInfo = (info: Recordable) => {
    set(CacheKeyEnum.USER_INFO_KEY, info);
    userInfo.value = info;
  };

  const getToken = computed(() => {
    return token.value || get(CacheKeyEnum.TOKEN_KEY) || null;
  });

  const getUserInfo = computed(() => {
    return userInfo.value || get(CacheKeyEnum.USER_INFO_KEY) || null;
  });

  const login = async () => {};

  return {
    getUserInfo,
    getToken,
    login,
  };
});
